<?php
/**
 *  
 *
  */
namespace Org\Util;
class Ffcresult {

    
     public function getffclm($c_no='',$lottery_result) {
		 

          $day=date("Y-m-d");
		  $day_time=strtotime($day);
		  $data=array();
		  $lm=array();
		  $n_time=time(); 
		  if($c_no){
		  $q_c_no=$c_no-1;
		  $condition['c_no']=$q_c_no;
		  $max_c_no=M('lottery_results')->where($condition)->getField('c_no');
		  }else{
		  $condition['c_id']=13;	
		  $condition['add_time'] = array(array('gt',$day_time)) ; 
		  $max_c_no=M('lottery_results')->where($condition)->max('c_no'); //获取当天最大期数  
			  }
 		 
		  if($max_c_no!=$c_no&&!empty($c_no)){
		  // print_r($result['data'][0]['expect']);exit;
		  S('ffc_'.$c_no,$lottery_result);  //存入缓存  方便计算两面长龙算法
		   
		  $num= $lottery_result;
 		  $sum=array_sum($num);
		  $lm[0]=$sum;
		  $lm[1]=$this->zh_ds($sum);
		  $lm[2]=$this->zh_dx($sum);
		  $lm[3]=$this->lht($num);	 
		  $n_lm=implode(",",$lm);
		  
		  $data['lm']=$n_lm;
		  
		  if($max_c_no+1==$c_no){  //计算两面长龙结果
			
			$bdx=$this->bdx($num); //1-5大小
			$bds=$this->bds($num); //1-5单双 
			$q_three= $this->q_three($num);
			$m_three= $this->m_three($num);	
			$h_three= $this->h_three($num);	
			
			 //LH=L,2,龙;DX4=X,2,第四球-小;DX1=D,2,第一球-大;DS2=D,2,第二球-单;ZDX=X,2,总和小;ZDS=D,2,总和单;TS1=2,2,前三-对子;
			// $test_data=array('2,0,2,7,4','0,0,3,7,2','7,0,1,5,4','9,0,8,7,8','1,0,1,4,2','1,5,2,7,4');
			 
			 $flag=1;
			 $flag_q=0;
			 $flag_m=0;
			 $flag_h=0;
			 $flag_zds=0;
			 $flag_zdx=0;
			 $flag_lht=0;
			 $flag_bds1=0;
			 $flag_bds2=0;
			 $flag_bds3=0;
			 $flag_bds4=0;
			 $flag_bds5=0;
			 $flag_bdx1=0;
			 $flag_bdx2=0;
			 $flag_bdx3=0;
			 $flag_bdx4=0;
			 $flag_bdx5=0;
			 $k=1;
			 do{
				 
				 $old_lottery=$c_no-$k;
				 $ffc_result=S('ffc_'.$old_lottery);
   
				  if(empty($cqssc_result))
				  {
				  $condition1['c_id']=13;
				  $condition1['c_no']=$old_lottery;
				  $ffc_result=M('lottery_results')->where($condition1)->getField('lottery_result');
				  if($cqssc_result){
				  S('ffc_'.$old_lottery,$ffc_result);
				  }else{
					  $flag=0;
					  }
				  }	
				
				 $num1[$k-1]= explode(",",$ffc_result);
				 $sum1[$k-1]=array_sum($num1[$k-1]);
				
				 $q_three1[$k-1]= $this->q_three($num1[$k-1]);  //计算前三两面长龙
				 
				 if($flag_q==0){
					 
					if($q_three1[$k-1]['id']==$q_three['id']){
					 $b=$k+1;
					 $q_s='TS1='.$q_three1[$k-1]['id'].','.$b.',前三-'.$q_three1[$k-1]['string'].'';
					 }else{
						
					 $flag_q=1;	 
						 }
				 }
					
				 $m_three1[$k-1]= $this->m_three($num1[$k-1]);  //计算中三两面长龙
				 if($flag_m==0){
					 
					if($m_three1[$k-1]['id']==$m_three['id']){
					 $b=$k+1;
					 $m_s='TS2='.$m_three1[$k-1]['id'].','.$b.',中三-'.$m_three1[$k-1]['string'].'';
					 }else{
					 $flag_m=1;	 
						 }
				 }
				 
				 $h_three1[$k-1]= $this->h_three($num1[$k-1]);  //计算后三两面长龙
				 if($flag_h==0){
					 
					if($h_three1[$k-1]['id']==$h_three['id']){
					 $b=$k+1;
					 $h_s='TS3='.$h_three1[$k-1]['id'].','.$b.',后三-'.$h_three1[$k-1]['string'].'';
					 }else{
					 $flag_h=1;	 
						 }
				 }
				 
				 
				 
					//计算总和单双两面长龙
				 $ds1=$this->zh_ds($sum1[$k-1]);
				 if($flag_zds==0){
					 
					if($ds1==$lm[1]){
					 $b=$k+1;
					 //ZDS=D,2,总和单
					   if($ds1=='双'){
					   $zh_ds='ZDS=S,'.$b.',总和双';
					   }else{
					   $zh_ds='ZDS=D,'.$b.',总和单';
						   }
					 }else{
					 $flag_zds=1;	 
						 }
				 }
				 
					 //计算总和大小两面长龙
				 $dx1=$this->zh_dx($sum1[$k-1]);
				 if($flag_zdx==0){
					 
					if($dx1==$lm[2]){
					 $b=$k+1;
					 //ZDS=D,2,总和单
					   if($dx1=='小'){
					   $zh_dx='ZDX=X,'.$b.',总和小';
					   }else{
					   $zh_dx='ZDX=D,'.$b.',总和大';
						   }
					 }else{
					 $flag_zdx=1;	 
						 }
				 }
				 
				 
					 //计算龙虎和两面长龙
				 $lht1=$this->lht($num1[$k-1]);
				 if($flag_lht==0){
					
					if($lht1==$lm[3]){
					 $b=$k+1;
					 //LH=L,2,龙
					   if($lht1=='龙'){
					   $zh_lht='LH=L,'.$b.',龙';
					   }elseif($lht1=='虎'){
					   $zh_lht='LH=H,'.$b.',虎';
						   }else{
						$zh_lht='LH=T,'.$b.',和';	   
							   }
					 }else{
					 $flag_lht=1;	 
						 }
				 }
				 
					//计算1-5单双两面长龙
				 $bds1=$this->bds($num1[$k-1]);
				  
				 if($flag_bds1==0){
					if($bds1[0]==$bds[0]){
					 $b=$k+1;
					 //DS2=D,2,第二球-单
					   if($bds1[0]=='双'){
					   $b_ds1='DS1=S,'.$b.',第一球-双';
					   }else{
					   $b_ds1='DS1=D,'.$b.',第一球-单';
						   }
					 }else{
					 $flag_bds1=1;	 
						 }
				 } 
				 if($flag_bds2==0){
					if($bds1[1]==$bds[1]){
					 $b=$k+1;
					 //DS2=D,2,第二球-单
					   if($bds1[1]=='双'){
					   $b_ds2='DS2=S,'.$b.',第二球-双';
					   }else{
					   $b_ds2='DS2=D,'.$b.',第二球-单';
						   }
					 }else{
					 $flag_bds2=1;	 
						 }
				 }
				 if($flag_bds3==0){
					if($bds1[2]==$bds[2]){
					 $b=$k+1;
					 //DS2=D,2,第二球-单
					   if($bds1[2]=='双'){
					   $b_ds3='DS3=S,'.$b.',第三球-双';
					   }else{
					   $b_ds3='DS3=D,'.$b.',第三球-单';
						   }
					 }else{
					 $flag_bds3=1;	 
						 }
				 }
				 if($flag_bds4==0){
					if($bds1[3]==$bds[3]){
					 $b=$k+1;
					 //DS2=D,2,第二球-单
					   if($bds1[3]=='双'){
					   $b_ds4='DS4=S,'.$b.',第四球-双';
					   }else{
					   $b_ds4='DS4=D,'.$b.',第四球-单';
						   }
					 }else{
					 $flag_bds4=1;	 
						 }
				 }
				 if($flag_bds5==0){
					if($bds1[4]==$bds[4]){
					 $b=$k+1;
					 //DS2=D,2,第二球-单
					   if($bds1[4]=='双'){
					   $b_ds5='DS5=S,'.$b.',第五球-双';
					   }else{
					   $b_ds5='DS5=D,'.$b.',第五球-单';
						   }
					 }else{
					 $flag_bds5=1;	 
						 }
				 }
				 
				 
				 
					 //计算1-5大小两面长龙
				 $bdx1=$this->bdx($num1[$k-1]);
				  
				 if($flag_bdx1==0){
					if($bdx1[0]==$bdx[0]){
						
					 $b=$k+1;
					 //DS2=D,2,第二球-单
					   if($bdx1[0]=='小'){
					   $b_dx1='DX1=X,'.$b.',第一球-小';
					   }else{
					   $b_dx1='DX1=D,'.$b.',第一球-大';
						   }
					 }else{
					 $flag_bdx1=1;	 
						 }
				 }
				 if($flag_bdx2==0){
					if($bdx1[1]==$bdx[1]){
						
					 $b=$k+1;
					 //DS2=D,2,第二球-单
					   if($bdx1[1]=='小'){
					   $b_dx2='DX2=X,'.$b.',第二球-小';
					   }else{
					   $b_dx2='DX2=D,'.$b.',第二球-大';
						   }
					 }else{
					 $flag_bdx2=1;	 
						 }
				 }
				 if($flag_bdx3==0){
					if($bdx1[2]==$bdx[2]){
						
					 $b=$k+1;
					 //DS2=D,2,第二球-单
					   if($bdx1[2]=='小'){
					   $b_dx3='DX3=X,'.$b.',第三球-小';
					   }else{
					   $b_dx3='DX3=D,'.$b.',第三球-大';
						   }
					 }else{
					 $flag_bdx3=1;	 
						 }
				 }
				 if($flag_bdx4==0){
					 
					if($bdx1[3]==$bdx[3]){
						
					 $b=$k+1;
					 //DS2=D,2,第二球-单
					 
					   if($bdx1[3]=='小'){
					   $b_dx4='DX4=X,'.$b.',第四球-小';
					   }else{
					   $b_dx4='DX4=D,'.$b.',第四球-大';
						   }
					 }else{
					 $flag_bdx4=1;	 
						 }
				 }
				 if($flag_bdx5==0){
					if($bdx1[4]==$bdx[4]){
						
					 $b=$k+1;
					 //DS2=D,2,第二球-单
					   if($bdx1[4]=='小'){
					   $b_dx5='DX5=X,'.$b.',第五球-小';
					   }else{
					   $b_dx5='DX5=D,'.$b.',第五球-大';
						   }
					 }else{
					 $flag_bdx5=1;	 
						 }
				 }
				 
				 
				 
				 $k++;
		   
				if($flag_q==1&&$flag_m==1&&$flag_h==1&&$flag_zds==1&&$flag_zdx==1&&$flag_lht==1&&$flag_bds1==1&&$flag_bds2==1&&$flag_bds3==1&&$flag_bds4==1&&$flag_bds5==1&&$flag_bdx1==1&&$flag_bdx2==1&&$flag_bdx3==1&&$flag_bdx4==1&&$flag_bdx5==1||$k>15){
				  // if($k<11){
					 $flag=0;
					 }
				  // $flag=0;  
				 }while($flag==1);
			
			
			 if($q_s){	 
			 $s[]=$q_s;	
			 }
			 if($m_s){
			 $s[]=$m_s;	
			 }
			 if($h_s){
			 $s[]=$h_s;	
			 }
			 if($zh_ds){
			 $s[]=$zh_ds;	
			 }
			 if($zh_dx){
			 $s[]=$zh_dx;	
			 }
			 if($zh_lht){
			 $s[]=$zh_lht;	
			 }
			 if($b_ds1){
			 $s[]=$b_ds1;	
			 }
			 if($b_ds2){
			 $s[]=$b_ds2;	
			 }
			 if($b_ds3){
			 $s[]=$b_ds3;	
			 }
			 if($b_ds4){
			 $s[]=$b_ds4;	
			 }
			 if($b_ds5){
			 $s[]=$b_ds5;	
			 } 
			 if($b_dx1){
			 $s[]=$b_dx1;	
			 }
			 if($b_dx2){
			 $s[]=$b_dx2;	
			 }
			 if($b_dx3){
			 $s[]=$b_dx3;	
			 }
			 if($b_dx4){
			 $s[]=$b_dx4;	
			 }
			 if($b_dx5){
			 $s[]=$b_dx5;	
			 }
			 
			 
			 $n_s=implode(";",$s);	
			   
			 $data['detail']=$n_s;	
			  }
		  }
	 return $data;				
    }
	
	 public function q_three($array){  //前三判断
		
		$output = array_slice($array, 0, 3);
		$data['id']='5';
		$data['string']='杂六';
		sort($output);
		//判断是否是豹子
		if($output[0]==$output[1]&&$output[0]==$output[2]){
			$data['id']='0';
			$data['string']='豹子';
			}
		//判断是否是对子
		if(($output[0]==$output[1]||$output[1]==$output[2])&&$output[0]!=$output[2]){
			$data['id']='2';
			$data['string']='对子';
			}	
		//判断是否是顺子
		if($output[1]-$output[0]==1&&($output[2]-$output[1]==1||$output[2]-$output[0]==9)){
			$data['id']='1';
			$data['string']='顺子';
 			}
		//判断是否是半顺
		if(!($output[0]==$output[1]&&$output[0]==$output[2])&&!($output[0]==$output[1]||$output[0]==$output[2]||$output[1]==$output[2])&&!($output[1]-$output[0]==1&&($output[2]-$output[1]==1||$output[2]-$output[0]==9))&&($output[1]-$output[0]==1||$output[2]-$output[1]==1||$output[2]-$output[0]==9)){
			$data['id']='3';
			$data['string']='半顺';
 			}	
		return $data;
		
		}
        public function m_three($array){  //中三判断
		
		$output = array_slice($array, 1, 3);
		//print_r($output);exit;
		$data['id']='5';
		$data['string']='杂六';
		sort($output);
		//判断是否是豹子
		if($output[0]==$output[1]&&$output[0]==$output[2]){
			$data['id']='0';
			$data['string']='豹子';
			}
		//判断是否是对子
		if(($output[0]==$output[1]||$output[1]==$output[2])&&$output[0]!=$output[2]){
			$data['id']='2';
			$data['string']='对子';
			}	
		//判断是否是顺子
		if($output[1]-$output[0]==1&&($output[2]-$output[1]==1||$output[2]-$output[0]==9)){
			$data['id']='1';
			$data['string']='顺子';
 			}
		//判断是否是半顺
		if(!($output[0]==$output[1]&&$output[0]==$output[2])&&!($output[0]==$output[1]||$output[0]==$output[2]||$output[1]==$output[2])&&!($output[1]-$output[0]==1&&($output[2]-$output[1]==1||$output[2]-$output[0]==9))&&($output[1]-$output[0]==1||$output[2]-$output[1]==1||$output[2]-$output[0]==9)){
			$data['id']='3';
			$data['string']='半顺';
 			}	
		return $data;
		
		}
        public function h_three($array){  //后三判断
		
		$output = array_slice($array, 2, 3);
		//print_r($output);exit;
		$data['id']='5';
		$data['string']='杂六';
		sort($output);
		//判断是否是豹子
		if($output[0]==$output[1]&&$output[0]==$output[2]){
			$data['id']='0';
			$data['string']='豹子';
			}
		//判断是否是对子
		if(($output[0]==$output[1]||$output[1]==$output[2])&&$output[0]!=$output[2]){
			$data['id']='2';
			$data['string']='对子';
			}	
		//判断是否是顺子
		if($output[1]-$output[0]==1&&($output[2]-$output[1]==1||$output[2]-$output[0]==9)){
			$data['id']='1';
			$data['string']='顺子';
 			}
		//判断是否是半顺
		if(!($output[0]==$output[1]&&$output[0]==$output[2])&&!($output[0]==$output[1]||$output[0]==$output[2]||$output[1]==$output[2])&&!($output[1]-$output[0]==1&&($output[2]-$output[1]==1||$output[2]-$output[0]==9))&&($output[1]-$output[0]==1||$output[2]-$output[1]==1||$output[2]-$output[0]==9)){
			$data['id']='3';
			$data['string']='半顺';
 			}	
		return $data;
		
		}
      public function zh_ds($sum){  //总和单双
      if($sum%2==0){
		$ds='双';
			}else{
		$ds='单';	 
		}
		return $ds;
 }
public function zh_dx($sum){  //总和大小
      if($sum>=23){
		   $dx='大';	 
			 }else{
			 $dx='小';	 
				 }
		return $dx;
 }
public function lht($num){  //总和大小
      if($num[0]>$num[4]){
			$lht='龙';	 
			 }elseif($num[0]<$num[4]){
				$lht='虎';	  
				 }	else{
				$lht='和';	  	 
					 }	
		return $lht;
 }
public function bdx($num){  //1-5球大小
	 $bdx=array();
	 foreach($num as $k=>$v){
		 if($v>=5){
		   $bdx[$k]='大';	 
			 }else{
			$bdx[$k]='小';	 
				 }
 		 }
	return $bdx;	 
  }
public function bds($num){  //1-5球单双
	 $bds=array();
	 foreach($num as $k=>$v){
		 if($v%2==0){
		   $bds[$k]='双';	 
			 }else{
			$bds[$k]='单';	 
				 }
 		 }
	return $bds;	 
  }	 
}